package org.gp.tringes;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Observable;

import org.gp.tringes.GestorBD;

public class GestorIGRegistroDueno extends Observable{
	
	private static GestorIGRegistroDueno miGestorIGRegistroDueno = new GestorIGRegistroDueno();
	
	private GestorIGRegistroDueno(){}
	
	public static GestorIGRegistroDueno getGestorIGRegistroDueno(){
		return miGestorIGRegistroDueno;
	}
	
	//Para la clase IGRegistroDueno
	public Boolean existeFederado(String pNumFederado) throws SQLException{
		//Hacer un SELECT con pNombre. Si no hay resultados, continuamos devolviendo false. Si hay, devolvemos true
		ResultSet rs = GestorBD.getInstance().consulta("select * from dueno where numfederado='"+pNumFederado+"'");
		Boolean result = rs.next();
		GestorBD.getInstance().cerrarConsulta(rs);
		if(result){
			return true;
		}else{
			return false;
		}
	}
	
	public Boolean comprobarLongitudNumFed(String pNumFed){
    	if(pNumFed.length() == 0 || pNumFed.length() > 20){
    		return false;
    	}else{
    		return true;
    	}
    }
	
	public boolean comprobarContrasea(char[] j1,char[] j2) {
		boolean valor = true;
		int puntero = 0;
		if (j1.length != j2.length || j1.length < 6 || j1.length > 20){
			valor = false;
		}else{
			while((valor)&&(puntero < j1.length)){
				if (j1[puntero] != j2[puntero]){
					valor = false;
				}
				puntero++;
			}
		}
		return valor;
	}
	
	public void insertarDueno(String pNombre, String pApel, String pNumFed, char[] pContrasea) throws SQLException{
	    	String contrasea = String.valueOf(pContrasea);
	    	GestorBD.getInstance().insertar("insert into dueno(nombre,apellidos,numfederado,contrasenya,activo) values ('"+pNombre+"','"+pApel+"','"+pNumFed+"','"+contrasea+"', 1)");
	}
	
	//Para la clase IGModifDatosDueno
	
	public Boolean comprobarLongitudNombre(String pNombre){
    	if(pNombre.length() == 0 || pNombre.length() > 30){
    		return false;
    	}else{
    		return true;
    	}
    }
	
	public void actualizarDatos(String pDato, String pAtributo, String pNumFederado) throws SQLException{
		
		GestorBD.getInstance().actualizar("update dueno set "+pAtributo+"='"+pDato+"' where numFederado='"+pNumFederado+"'");
		
		setChanged();
		notifyObservers(pAtributo);
		
	}
	
}
